/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package database;
import data.PendidikanData;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Muhammad Dony
 */
public class PendidikanDB extends ConnectDB {

    private String sql;
    private Connection con;
    private Statement stmt;
    private ResultSet rs;
    
    public List getpendidikan() throws SQLException, ClassNotFoundException{
        sql = "SELECT * from `pendidikan`";
        return getpendidikandata(sql);
    }
    
    public List getpendidikanById(String ID) throws SQLException, ClassNotFoundException {
        sql = "SELECT * from `pendidikan` WHERE `ID`='"+ID+"';";
        return getpendidikandata(sql);
    }
     
    public List getpendidikanByxx(String ID, int no) throws SQLException, ClassNotFoundException {
        sql = "SELECT * from `pendidikan` WHERE `ID`='"+ID+"' AND `nomor`='"+no+"';";
        return getpendidikandata(sql);
    }
    
     private List getpendidikandata(String sql) throws SQLException, ClassNotFoundException{
        // mempersiapkan list dataPelaporan
        List listpendidikan = new ArrayList();
        //membuat koneksi , createConnection terdapat dalam DBClass
        con = createConnection();
        stmt = con.createStatement();
        rs = stmt.executeQuery(sql);
        // mempersiapkan object dataPelaporan
        PendidikanData pendidikanUser;
        
        while(rs.next()){
            pendidikanUser = new PendidikanData();
            pendidikanUser.setNomor(rs.getInt(1));
            pendidikanUser.setID(rs.getString(2));
            pendidikanUser.setInstitusi(rs.getString(3));
            pendidikanUser.setJurusan(rs.getString(4));
            pendidikanUser.setMasuk(rs.getString(5));
            pendidikanUser.setTamat(rs.getString(6)); 
            listpendidikan.add(pendidikanUser);
        }
        // menutup semua koneksi db
        rs.close();
        stmt.close();
        con.close();
        //return value list data pelaporan
        return listpendidikan;
        
    }
    
    private void actpendidikan(String sql) throws ClassNotFoundException, SQLException{
        // membuat koneksi
        con = createConnection();
        stmt = con.createStatement();
        // execute query
        stmt.execute(sql);
        // menutup koneksi db
        stmt.close();
        con.close();
    }
   public void insertPendidikan(PendidikanData listPendidikan) throws ClassNotFoundException, SQLException{
        // query
        sql = "INSERT INTO `scholarship`.`pendidikan` (`ID`, `institusi`, `jurusan`, `masuk`, `tamat`) VALUES ('"
                +listPendidikan.getID()+"', '"
                +listPendidikan.getInstitusi()+"', '"
                +listPendidikan.getJurusan()+"', '"
                +listPendidikan.getMasuk()+"', '"
                +listPendidikan.getTamat()+"');";
        actpendidikan(sql);
    }
    public void updatePendidikan(PendidikanData listPendidikan) throws ClassNotFoundException, SQLException{
        // query
        sql = "UPDATE `pendidikan` SET `institusi`='"+listPendidikan.getInstitusi()+
                "',`jurusan`='"+listPendidikan.getJurusan()+
                "',`masuk`='"+listPendidikan.getMasuk()+
                "',`tamat`='"+listPendidikan.getTamat()
                +"' WHERE `ID`='"+listPendidikan.getID()+"' AND nomor="+listPendidikan.getNomor()+";";
        // memanggil method untuk execute query
        actpendidikan(sql);
    }
    public void deletePendidikan(String ID, int no) throws ClassNotFoundException, SQLException{
        sql = "DELETE FROM `pendidikan` WHERE `ID`='"+ID+"' AND `nomor`='"+no+"';";
        actpendidikan(sql);
    } 
    
    
    
}
